DOTween入门

1、在此之前

第1步:

下载DOTween并将其解压缩到 Unity Assets文件夹中的任何位置(不在EditorPluginsResources目录中)。

建立 导入新的DOTween更新后,您必须设置DOTween才能根据Unity版本导入/重新导入其他库并激活/取消激活模块。

要设置DOTween,请从“Tools / Demigiant”菜单中打开DOTween Utility Panel,然后从出现的面板中选择“Setup DOTween ...”。

第2步:

在要使用它的每个类/脚本中导入DOTween的命名空间:

    using DG.Tweening;

第3步:

初始化DOTween以设置一些全局选项:

    DOTween.Init(autoKillMode, useSafeMode, logBehaviour);

如果您不这样做(或在创建第一个补间后执行此操作),DOTween将使用默认设置自动初始化,但您仍可以随时更改它们。

2、一个介绍

DOTween可以完全通用的方式使用,如下所示:

或者你可以利用它的快捷方式,如下所示:

无论您选择哪种方式,当您创建补间时,都会返回一个TweenerSequence(这里是对差异的解释),因此您可以根据需要存储对它的引用。您也可以将它们存储为Tween,而无需关心区别。

您可以通过各种方式控制补间:您可以使用静态DOTween方法(具有其他筛选选项)...

    DOTween.RewindAll();
    DOTween.Rewind(myId);

...直接补间引用...

    myTween.Rewind();

......或更多快捷方式

    transform.DORewind();

来自Tweens

只需将From设置链接到它,您几乎可以将任何补间播放从给定值播放到当前值(而不是从当前值的TO给定值,默认情况下):

    transform.DOMoveX(2, 1);
    transform.DOMoveX(2, 1).From();
    transform.DOMoveX(2, 1).From(true);

3、全局和特定设置

您可以设置将应用于所有新创建的补间的全局设置,或者为您创建的每个补间设置特定设置。

全局设置

全局设置允许您设置默认的autoPlayautoKill行为,缓动类型,全局timeScale以及类似的东西。

具体设置

通过链接分配特定设置,它们都以“Set” 开头(回调除外,以“On” 开头),因此IntelliSense将帮助您找到它们。

在这里,举一些链接的例子:

    transform.DOMoveX(new Vector3(2,2,2), 2).SetEase(Ease.OutQuint).SetLoops(4).OnComplete(myFunction);

    transform.DOMove(new Vector3(2,2,2), 2)
        .SetEase(Ease.OutQuint)
        .SetLoops(4)
        .OnComplete(myFunction);

    Tween myTween = transform.DOMove(new Vector3(2,2,2), 2);
    myTween.SetEase(Ease.OutQuint);
    myTween.SetLoops(4);
    myTween.OnComplete(myFunction);

此外,某些补间类型具有特殊的附加选项,具体取决于补间值的类型,可以通过它设置SetOptions()。请记住这SetOptions()是特殊的,需要在主补间创建方法后立即链接

    transform.DOMove(new Vector3(2,2,2), 2)
        .SetOptions(true)
        .SetEase(Ease.OutQuint)
        .SetLoops(4)
        .OnComplete(myFunction);

您甚至可以使用SetAs()将所有设置从一个补间复制到另一个补间:

    Tween myTween = transform.DOMove(new Vector3(2,2,2), 2)
        .SetEase(Ease.OutQuint)
        .SetLoops(4)
        .OnComplete(myFunction);

    materials.DOColor(Color.red, 2).SetAs(myTween);

(两个补间都会以OutQuint的方式循环4次,完成后它们将调用相同的OnComplete方法,即使它们实际上是在完全不同的对象和类型之间进行补间)

4、一个补间的生命周期

创建补间时,它将自动播放(除非您更改全局defaultAutoPlay行为),直到它完成所有循环。

补间完成后会自动终止(除非您更改全局defaultAutoKill行为),这意味着您将无法再使用它。

如果要重用相同的补间,只需将其autoKill行为设置为FALSE(通过更改所有补间的全局autoKill设置,或将SetAutoKill(false)链接到补间)。

如果补间播放时补间的目标变为NULL,则可能会发生错误。您必须小心或激活安全模式。

5、缓存和最大补间

如果激活回收 DOT之间缓存您创建的所有补间,则可以重用它们而不是创建新的补间。 此外,为了避免使用超过必要的资源,它将自己设置为同时运行的最多200个Tweeners和50个序列。如果您需要更多,DOTween会自动增加其大小,但您也可以直接设置它以避免在自动调整大小时出现打嗝:

    DOTween.SetTweensCapacity(3000, 200);

如果您想在任何时刻清除DOTween的缓存并完全重置它,您可以调用DOTween.Clear(),它将终止所有补间并清除所有缓存。

6、回收补间

您不需要手动回收补间。相反,您可以选择自动回收所有或仅回收特定的回收。

不过,您可以随时更改Tweener的结束并启动值。

🔚